@echo off
chcp 65001 >nul
echo ========================================
echo 开始构建项目
echo ========================================
echo.

REM 设置变量
set JAR_NAME=port-local-forward-api-1.0.0.jar
set API_DIR=api
set WEB_DIR=web
set RELEASE_DIR=release
set TARGET_DIR=%API_DIR%\target
set DIST_DIR=%WEB_DIR%\dist

REM 步骤1: 构建Java项目
echo [1/4] 正在构建Java项目...
cd %API_DIR%
if not exist pom.xml (
    echo 错误: 未找到pom.xml文件
    exit /b 1
)
call mvn clean package -DskipTests
if errorlevel 1 (
    echo 错误: Maven构建失败
    cd ..
    exit /b 1
)
cd ..
echo Java项目构建完成
echo.

REM 步骤2: 复制JAR包到release目录
echo [2/4] 正在复制JAR包到release目录...
if not exist %RELEASE_DIR% (
    mkdir %RELEASE_DIR%
)
REM 删除已存在的JAR包
if exist %RELEASE_DIR%\%JAR_NAME% (
    echo 删除已存在的JAR包: %RELEASE_DIR%\%JAR_NAME%
    del /f /q %RELEASE_DIR%\%JAR_NAME%
)
REM 复制新的JAR包
if not exist %TARGET_DIR%\%JAR_NAME% (
    echo 错误: 未找到构建的JAR包: %TARGET_DIR%\%JAR_NAME%
    exit /b 1
)
copy /y %TARGET_DIR%\%JAR_NAME% %RELEASE_DIR%\%JAR_NAME%
if errorlevel 1 (
    echo 错误: 复制JAR包失败
    exit /b 1
)
echo JAR包复制完成
echo.

REM 步骤3: 构建Vue项目
echo [3/4] 正在构建Vue项目...
cd %WEB_DIR%
if not exist package.json (
    echo 错误: 未找到package.json文件
    cd ..
    exit /b 1
)
call npm run build
if errorlevel 1 (
    echo 错误: Vue项目构建失败
    cd ..
    exit /b 1
)
cd ..
echo Vue项目构建完成
echo.

REM 步骤4: 复制dist目录到release/static
echo [4/4] 正在复制dist目录到release/static...
if not exist %DIST_DIR% (
    echo 错误: 未找到dist目录: %DIST_DIR%
    exit /b 1
)
REM 删除已存在的static目录
if exist %RELEASE_DIR%\static (
    echo 删除已存在的static目录: %RELEASE_DIR%\static
    rmdir /s /q %RELEASE_DIR%\static
)
REM 创建static目录并复制内容
mkdir %RELEASE_DIR%\static
xcopy /E /I /Y %DIST_DIR%\* %RELEASE_DIR%\static\
if errorlevel 1 (
    echo 错误: 复制dist目录失败
    exit /b 1
)
echo dist目录复制完成
echo.

echo ========================================
echo 构建完成！
echo ========================================
echo JAR包位置: %RELEASE_DIR%\%JAR_NAME%
echo 静态文件位置: %RELEASE_DIR%\static\
echo.

